9.6 Безопасное хранение. FlutterSecureStorage
1 из 1 шага пройден

 Безопасное хранилище данных

  • SharedPreferences: Простое хранилище для настроек и некритичных данных в формате "ключ-значение".
  • SQLite: Мощная реляционная база данных для хранения больших объемов структурированных данных.

Но что, если нужно сохранить данные, которые требуют максимального уровня безопасности? Например, токен авторизации (JWT), пароли, API-ключи или биометрические данные. Хранить их в SharedPreferences или незашифрованной базе SQLite небезопасно.

Именно для таких случаев и существует FlutterSecureStorage.

FlutterSecureStorage

Это плагин, который предоставляет защищенное, зашифрованное хранилище для данных. Он использует нативные, надёжные системные механизмы.

  • На iOSKeychain Services. Это централизованное и защищенное хранилище для паролей, ключей и сертификатов.
  • На AndroidKeystore System. Позволяет хранить криптографические ключи в специальном контейнере, защищая их от извлечения.

Таким образом, данные, которые вы сохраняете, шифруются на уровне операционной системы, что обеспечивает высокий уровень защиты.

Установка зависимостей

flutter pub add flutter_secure_storage

Например, сделаем примерную реализацию сервиса по хранению API ключа

import 'package:flutter_secure_storage/flutter_secure_storage.dart';

class SecureApiKeyService {
  // Создаем экземпляр хранилища
  final _storage = const FlutterSecureStorage();
  
  // Определяем ключ, под которым будем хранить наш API-ключ
  static const _apiKeyStorageKey = 'api_key';

  Future<void> saveApiKey(String apiKey) async {
    // Используем метод write для сохранения
    await _storage.write(key: _apiKeyStorageKey, value: apiKey);
  }
  Future<String?> getApiKey() async {
    // Используем метод read для чтения
    return await _storage.read(key: _apiKeyStorageKey);
  }

  Future<void> deleteApiKey() async {
    // Используем метод delete для удаления
    await _storage.delete(key: _apiKeyStorageKey);
  }
}

FlutterSecureStorage по принципу работы схож с SharedPreferences основанный на ключах и значениях. Использовать его очень просто, методы read и write.


Будьте вежливы и соблюдайте наши принципы сообщества. Пожалуйста, не оставляйте решения и подсказки в комментариях, для этого есть отдельный форум.
Оставить комментарий
Комментарий закреплён